package com.ybear.ybhotrepair.utils;

import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Build;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import java.util.Objects;

public class AppUtil {
    /**
     * 获取版本代码
     * @param mContext  上下文
     * @return          返回版本代码
     */
    public static long getVerCode(@NonNull Context mContext) {
        try {
            PackageInfo pi = getPackgeInfo(mContext);
            return pi == null ? 0L :
                    Build.VERSION.SDK_INT >= 28 ? pi.getLongVersionCode() : pi.versionCode;
        }catch (NullPointerException e) {
            e.printStackTrace();
        }
        return 0L;
    }

    /**
     * 获取版本名称
     * @param mContext  上下文
     * @return          返回版本名称
     */
    @Nullable
    public static String getVerName(@NonNull Context mContext) {
        try {
            PackageInfo pi = getPackgeInfo(mContext);
            return pi == null ? null : pi.versionName;
        }catch (NullPointerException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 获取当前包的信息
     * @param mContext  上下文
     * @return          {@link PackageInfo}
     */
    private static @Nullable PackageInfo getPackgeInfo(Context mContext) {
        PackageManager pm = mContext.getPackageManager();
        try {
            return pm.getPackageInfo(mContext.getPackageName(), 0);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return null;
    }
}
